Skip to content

SEP 11 -- 长耗时接口处理

Head

  • Author: larry
  • Status: draft
  • Type: Standards
  • Created: 2017-11-08

摘要

部分接口的执行耗时很长,常规优化解决不了,需要把操作异步化处理,避免出现接口耗时很长,前端超时的情况。

策略

  1. 接口收到请求后立刻返回,告诉调用方任务执行中。

  2. 调用方有两种方式获得结果。

    1. 接口给调用方返回一个查询链接

      调用方轮询获取结果。

      接口可以在首次返回中给出建议轮询建议,包含:轮询间隔,总超时时长。只是建议值,前端可以接受也可以自行修改。

    2. 调用方在请求时给一个notify_url地址

      接口对应的异步任务在执行完成后,通知notify_url。通知策略可以有多次。

  3. 查询接口和notify_url的参数协议建议做成通用的,不要让每个业务单独定义格式,每个业务用的时候只定义业务参数。

  4. 长任务提交到celery中处理。